package br.lotr.entidades;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="lotr_Cartas")
public class Cartas implements Serializable {
	

	private static final long serialVersionUID = 8084262392719079628L;
	@Id
	@Column(name="id_cartas",nullable=false)
	private String id; //colecao 1r13
	@Column(name="ds_titulo",nullable=false)
	private String titulo;
	@Column(name="vr_custo") 
	private int custo; //custo da carta
	@Column(name="bol_unica")
	private boolean unica;
	@Column(name="img_carta")
	private String imagem;
	@Column(name="ds_texto_jogo")
	private String texto_jogo;
	@Column(name="ds_texto_supl")
	private String texto_suplemantar;
	@Column(name="vl_forca")
	private Integer forca;
	@Column(name="vl_vitalidade")
	private Integer vitalidade;
	@Column(name="vl_site")
	private Integer site;
	@Column(name="vl_resistencia")
	private Integer resistencia;
	
	@ManyToMany
	@JoinColumn(name="habilidade_id")
	private List<Habilidade> habilidade_carta; //damage + 1, tracker, defender +1
	@ManyToOne
	@JoinColumn(name="cultura_id")
	private Cultura cultura; //elfo,hobbit
	@ManyToOne
	@JoinColumn(name="raridade_id")
	private Raridade raridade; //comun,raro,inconmum
	@ManyToOne
	@JoinColumn(name="insignia_id")
	private Insignia ds_insignia;// gandalf,aragorn
	@ManyToOne
	@JoinColumn(name="bloco_id")
	private Bloco bloco;//felloship,two tower
	@ManyToOne
	@JoinColumn(name="tipo_id")
	private Tipo_Carta tipo_Carta; //condicao, evento, companion, minion
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getTitulo() {
		return titulo;
	}
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public int getCusto() {
		return custo;
	}
	public void setCusto(int custo) {
		this.custo = custo;
	}
	public boolean isUnica() {
		return unica;
	}
	public void setUnica(boolean unica) {
		this.unica = unica;
	}
	public Insignia getDs_insignia() {
		return ds_insignia;
	}
	public void setDs_insignia(Insignia ds_insignia) {
		this.ds_insignia = ds_insignia;
	}
	public Bloco getBloco() {
		return bloco;
	}
	public void setBloco(Bloco bloco) {
		this.bloco = bloco;
	}
	public Tipo_Carta getTipo_Carta() {
		return tipo_Carta;
	}
	public void setTipo_Carta(Tipo_Carta tipo_Carta) {
		this.tipo_Carta = tipo_Carta;
	}
	public String getImagem() {
		return imagem;
	}
	public void setImagem(String imagem) {
		this.imagem = imagem;
	}
	public Raridade getRaridade() {
		return raridade;
	}
	public void setRaridade(Raridade raridade) {
		this.raridade = raridade;
	}
	public Cultura getCultura() {
		return cultura;
	}
	public void setCultura(Cultura cultura) {
		this.cultura = cultura;
	}
	public List<Habilidade> getHabilidade_carta() {
		return habilidade_carta;
	}
	public void setHabilidade_carta(List<Habilidade> habilidade_carta) {
		this.habilidade_carta = habilidade_carta;
	}
	public String getTexto_jogo() {
		return texto_jogo;
	}
	public void setTexto_jogo(String texto_jogo) {
		this.texto_jogo = texto_jogo;
	}
	public String getTexto_suplemantar() {
		return texto_suplemantar;
	}
	public void setTexto_suplemantar(String texto_suplemantar) {
		this.texto_suplemantar = texto_suplemantar;
	}
	public Integer getForca() {
		return forca;
	}
	public void setForca(Integer forca) {
		this.forca = forca;
	}
	public Integer getVitalidade() {
		return vitalidade;
	}
	public void setVitalidade(Integer vitalidade) {
		this.vitalidade = vitalidade;
	}
	public Integer getSite() {
		return site;
	}
	public void setSite(Integer site) {
		this.site = site;
	}
	public Integer getResistencia() {
		return resistencia;
	}
	public void setResistencia(Integer resistencia) {
		this.resistencia = resistencia;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cartas other = (Cartas) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

	


}
